Overfitting

  • zu stark an Trainingsdaten angepasst
  • schlechte verallgemeinerung auf Testdaten
  • Model zu komplex / zu lange trainiert

Overfitting

  • zu stark an Trainingsdaten angepasst
  • schlechte verallgemeinerung auf Testdaten
  • Schlecht regularsiert / zu wenig Parameter

Overfitting

  • zu stark an Trainingsdaten angepasst
  • schlechte verallgemeinerung auf Testdaten
  • Schlecht regularsiert / zu wenig Parameter
N_{\text{Data}} < N_{\text{Params}}

Gezielt Overfitten

Ist das Modell geeignet, Muster zu erkennen?

  • overfitten auf einer batch (sanity check)
  • catch bugs fast
# Get one batch from the training_loader
images, labels = next(iter(training_loader))

# alternativ:
for images, labels in training_loader:
  break

# Train the model on the batch for 100 iterations
for _ in range(100):
    train(model, criterion, optimizer, [(images, labels)])

Gezielt Overfitten

Ist das Modell geeignet, Muster zu erkennen?

  • overfitten auf einer batch (sanity check)
  • catch bugs fast
  • Loss steigt -> hohe learning rate, +/- vertauscht
  • Loss explodiert -> hohe lr, numerisches problem
  • Loss oszilliert -> hohe lr, data / label fehlerhaft geladen
  • Loss plateau -> tiefe lr, backprob error, falscher Input in Loss

Overfitten

Hands-On: MNIST Classifier

Bearbeiten Sie dieses Notebook

 

  • Wählen Sie eine zufällige Batch zum overfitten
     
  • Trainieren Sie auf dieser Batch für 100 Epochen
     
  • Evaluieren Sie das Modell an dieser Batch und den Testdaten

 

Die Lösung finden Sie in diesem Notebook